
package Modelo;

import java.util.*;

import Persistencia.AdministradorPersistenciaCliente;
import Persistencia.AdministradorPersistenciaTarjeta;
import Vista.VistaTarjeta;

public class Cliente {
	
	private String dni;
	private String nombre;
	private Vector<Tarjeta> tarjetas;
	
	public Cliente (String dni, String nombre){
		this.nombre = nombre;
		this.dni = dni;
		this.tarjetas = new Vector<Tarjeta>();
		AdministradorPersistenciaCliente.getInstancia().insert(this);
	}
	
	public Cliente() {
		tarjetas = new Vector<Tarjeta>();
	}

	public void crarTarj (int nro, int limite){
		Tarjeta t = buscarTarjeta(nro);
		
		if (t == null){
			t = new Tarjeta(nro, limite, this.dni);
			tarjetas.add(t);
		}
		
		
	}
	
	public boolean perteneceCliente(String dni){
		return this.dni.equals(dni);
	}

	private Tarjeta buscarTarjeta (int nro){
		for (int i = 0; i<tarjetas.size();i++){
			if (tarjetas.elementAt(i).perteneceTarjeta(nro)){
				return tarjetas.elementAt(i);
			}

		}
		return AdministradorPersistenciaTarjeta.getInstance().buscarTarjeta(nro);
		
	}
	
	public String getDni() {
		return dni;
	}

	public void setDni(String dni) {
		this.dni = dni;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	public VistaTarjeta consultarClienteTarjeta (){
		
		this.tarjetas = AdministradorPersistenciaTarjeta.getInstance().consultarTarjetaCliente(dni);
		
		return new VistaTarjeta(this.nombre, this.dni, sumarLimites());
		
	}
	
	public int sumarLimites (){
		int suma = 0;
		
		for (int i = 0; i < tarjetas.size();i++){
			suma = suma + tarjetas.elementAt(i).getLimite();
		}
		
		return suma;
	}
	
	

}
